home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 25 / CU Amiga Magazine's Super CD-ROM 25 (1998)(EMAP Images)(GB)(Track 1 of 2)[!][issue 1998-08].iso / CUCD / Programming / QuakeTools / src / libqtools / map.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-05-29  |  2.4 KB  |  93 lines

  1. #ifndef    MAP_H
  2. #define    MAP_H
  3. /*
  4.  * ============================================================================
  5.  * structures
  6.  * ============================================================================
  7.  */
  8.  
  9. #define    MAXTOKEN        128
  10. #define    SAVE_BACK        1024
  11.  
  12. #define MAX_MAPLIGHTLEVEL    300
  13.  
  14. struct plane {
  15.   vec3_t normal;
  16.   vec_t dist;
  17.   int type;
  18. } __packed;                // 20
  19.  
  20. struct mface {
  21.   struct mface *next;
  22.   struct plane plane;
  23.   int texinfo;
  24.   /* added by niels */
  25.   vec3_t p0, p1, p2;
  26. } __packed;                // 48 -> 96
  27.  
  28. struct mbrush {
  29.   struct mbrush *next;
  30.   struct mface *faces;
  31. } __packed;                // 8
  32.  
  33. struct epair {
  34.   struct epair *next;
  35.   char *key;
  36.   char *value;
  37. } __packed;                // 12
  38.  
  39. struct entity {
  40.   vec3_t origin;
  41.   struct mbrush *brushes;
  42.   struct epair *epairs;
  43.   
  44.   /* light */
  45.   char *classname;
  46.   float angle;
  47.   int light, style;
  48.   char *target, *targetname;
  49.   struct entity *targetent;
  50. } __packed;                // 20
  51.  
  52. /*
  53.  * ============================================================================
  54.  * globals
  55.  * ============================================================================
  56.  */
  57.  
  58. extern char token[MAXTOKEN];
  59. extern bool unget;
  60. extern char *script_p;
  61. extern int scriptline;
  62.  
  63. /*
  64.  * ============================================================================
  65.  * prototypes
  66.  * ============================================================================
  67.  */
  68.  
  69. int FindMiptex(__memBase, char *name);
  70. int FindTexinfo(__memBase, struct texinfo *t);
  71. int MakeTexinfo (__memBase, char *texname, struct mface *f, float *scale, float rotate, float *shift);
  72. struct entity *FindEntityWithKeyPair(__memBase, char *key, char *value);
  73. struct entity *FindTargetEntity(__memBase, char *target);
  74. struct entity *FindEntityWithModel(__memBase, int modnum);
  75. void StartTokenParsing(char *data);
  76. bool GetToken(bool crossline);
  77. void UngetToken(void);
  78. void ParseEpair(void);
  79. void TextureAxisFromPlane(struct plane *pln, vec3_t xv, vec3_t yv);
  80. void ParseBrush(__memBase);
  81. bool ParseEntity(__memBase);
  82. int LightStyleForTargetname(char *targetname, bool alloc);
  83. void MatchTargets(__memBase);
  84. void WriteEntitiesToString(__memBase);
  85. void PrintEntity(struct entity *ent);
  86. char *ValueForKey(struct entity *ent, char *key);
  87. char *ValueForKeyN(struct entity * ent, char *key);
  88. void SetKeyValue(struct entity *ent, char *key, char *value);
  89. float FloatForKey(struct entity *ent, char *key);
  90. float FloatForKeyN(struct entity *ent, char *key);
  91. void GetVectorForKey(struct entity *ent, char *key, vec3_t vec);
  92. #endif
  93.